1. Field of the Invention
The present invention relates generally to using color devices and more specifically to inverting color device models.
2. Description of the Related Art
Characterization of color devices such as printers and display devices having their own device dependent color spaces, such as a color space having color values defined by Red Green and Blue (RGB), involves building a forward model and an inverse model. One approach to building the forward model is to sample the RGB color space with a uniform sampling grid, then building the forward model by interpolation on the uniform sampling grid. The inverse model, on the other hand, is built by inverting the forward model using a mathematical algorithm.
Because the forward model can be written mathematically asx=P(d)where x is a perceptual color space, such as CIELAB, and d is a device color space, such as RGB, both of dimension 3, this can be viewed as solving 3 nonlinear equations in 3 unknowns. Viewed this way, the Newton algorithm for solving nonlinear equations can be applied to obtain a solution. This is an iterative algorithm wherein the algorithm is started with an initial estimate of the solution termed a “seed.” The iterative step of the algorithm takes the estimate and returns a new estimate. At the end of each iteration, a stopping criterion is applied to determine if iteration loop should terminate. If not, then the new estimate is fed into the iterative step again to produce another estimate. The iterations will eventually stop if either the error is small enough (the solution is close enough) or a maximum number of iterations is reached.
The algorithm outlined above is usually called the “local” Newton algorithm because it is only guaranteed to converge locally, i.e., if the initial estimate is already close to the true solution, the algorithm will get to it very quickly, but if the initial estimate is not close, then the intermediate iterations may not even produce progressively better estimates. Instead, they may wander for a while before getting close to the true solution, if ever.
An advantage of the local Newton algorithm is that it is fast. It is faster than a brute force search for an enclosing tetrahedron, for example, in the case where the forward model is constructed by tetrahedral interpolation. However, the local Newton algorithm is plagued by convergence issues, some well-known in general for the local Newton algorithm, some peculiar to the application to inverting the device model.
One issue is that the iterative step may not decrease the error when the current estimate is far away from the true solution. A slight modification of the local Newton algorithm can be made to record the best solution as the iterations proceed, but still the local Newton algorithm does not guarantee that eventually the iterates will get close to the solution. This issue exists for the local Newton algorithm in general.
Another issue may also cause the iterates to fail to get close to the solution. This is because of the fact that the forward model does not strictly satisfy the smoothness assumption of the Newton algorithm. The usual assumption is that the nonlinear equations that we are trying to solve have continuous first derivatives. However, for forward models based on tetrahedral interpolation, the model is only differentiable—linear in fact—within each tetrahedron, but the derivative is discontinuous on the facets of the tetrahedron. The discontinuity sets up a “barrier” which an iterate may not get past. This issue exists because the device model is piecewise linear.
Another issue may cause the local Newton algorithm not to converge. An assumption of the algorithm is that the independent variables are unbounded. This is not the case for device color spaces such as RGB space, which is bounded by 0 and 1 in each channel.
There are known solutions to the first issue discussed above. It is possible to “globalize” the Newton algorithm by taking a partial Newton step when the iterate is far away from the true solution, a step that would decrease the error, and taking the full step only when the iterate is close enough. The calculation of the partial step, however, is quite expensive computationally. Note that low computational cost is an advantage of the local Newton algorithm. Also, the global Newton algorithm does not address the second and third issues which are peculiar to application to a forward model that is piecewise linear and bounded in the independent variables.
Therefore, a need exists for a process to invert a forward model for a color device that has better convergence properties than a process based on a local Newton model yet is still computationally inexpensive. Various aspects of the present invention meet such a need.